extends Node
#管理dj的替换逻辑
#高能榜前三轮流当Dj
#当DJ时间5分钟，冷却时间10分钟
#中断当dj的话，冷却时间返还一些
#如果前三都在冷却时间里，那就让第一个当
var _rankArr:Array=[] #前三的榜单
var _currentDj:Player=null
func _ready():
	pass # Replace with function body.


func onRankChangeUid(arr:Array):
	var res=[]
	for i in arr.size():
		var uid=arr[i]
		var player=PlayerManager.getPlayer(uid)
		if player:
			res.append(player)
	onRankChange(res)
	pass

#高能榜更新了 arr里面是player
func onRankChange(arr:Array):
	_rankArr=arr

func _process(delta):
	#重新决定dj
	for i in range(3):
		if(i>=_rankArr.size()):
			break;
		var p=_rankArr[i] as Player
		if _currentDj==p:
			#检测时间是不是到了
			p.djPower-=delta*p.reduceDJPowerSpeed
			if p.djPower<=0:
				continue  #等待别人接替
			else:
				break #不用别人接替
		elif p.isDjOk():
			#让p上去
			_changeDJ(p)
			break

func _changeDJ(player):
	if _currentDj:
		_currentDj.stopDJ()
	_currentDj=player
	if player:
		player.startDJ()

